В шаге Шаг 13 - Организация цикла. мы уже посмотрели как можно организовать цикл по счетчику. Есть более простой способ организации цикла используя команду LOOP это команда выглядит так
LOOP метка
Она будет переводить нас на указанную метку до тех пор пока регистр CX не станет равный нулю. Эта способность и позволяет нам организовать цикл. Смотрим пример.
MODEL SMALL STACK 256 DATASEG str1 DB 'LOOP $' CODESEG Start: mov ax,@data ; установка в ds адpеса mov ds,ax ; сегмента данных mov cl,3 ; настройка счетчика mov dx,OFFSET str1 ; адрес строки WriteLoop: CALL WriteStr loop WriteLoop Exit: CALL ExitProgramm INCLUDE function.asm End Start
У нас 3 раза должны быть показана строка, в самом начале мы задаем количество циклов в регистре CL.
mov cl,3 ; настройка счетчика
В тот момент кода программа подойдет к LOOP вы увидите направления в отладчике
А сразу после команды ( тут нужна клавиша F7 - Trace Info) регистр CX будет уменьшен на единицу.
Вот так оно и работает. Дошли до LOOP, если регистр CX не ноль то перешли по метке и уменьшили его, а как только он 0 пошли дальше.